Skip to content

boards: silabs: Add support for Silabs EFR32ZG28 SoC #89597

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

shontal1005
Copy link

@shontal1005 shontal1005 commented May 7, 2025

Adds support for Silicon Labs EFR32ZG28 SoC and BRD4401C Radio Board.

Copy link

github-actions bot commented May 7, 2025

Hello @shontal1005, and thank you very much for your first pull request to the Zephyr project!
Our Continuous Integration pipeline will execute a series of checks on your Pull Request commit messages and code, and you are expected to address any failures by updating the PR. Please take a look at our commit message guidelines to find out how to format your commit messages, and at our contribution workflow to understand how to update your Pull Request. If you haven't already, please make sure to review the project's Contributor Expectations and update (by amending and force-pushing the commits) your pull request if necessary.
If you are stuck or need help please join us on Discord and ask your question there. Additionally, you can escalate the review when applicable. 😊

kartben
kartben previously requested changes May 7, 2025
Copy link
Contributor

@kartben kartben left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is missing a documentation page
see https://github.com/zephyrproject-rtos/zephyr/blob/76e1fc7713a4a3f2b50c497afddec0364a34c10b/doc/templates/board.tmpl or other SiLabs boards for examples

Thanks!

@jerome-pouiller
Copy link
Contributor

jerome-pouiller commented May 7, 2025

The commit is large. Would you mind to split it in two parts (or more)? Maybe one commit for the soc and one commit for the board?

BTW, don't this PR require any change on the hal? If yes, you need to update west.yml.

compatible = "fixed-factor-clock";
clocks = <&lfrco>;
};
wdog0clk: wdog0clk {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

peripherals need to be disabled in the base dts file, then enabled as-needed by boards

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that on all other platforms the peripherals are not disabled

Comment on lines 24 to 25
config SOC_GECKO_SDID
default 235 if SOC_SERIES_EFR32ZG28
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if this is an existing symbol, put it in Kconfig.defconfig

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand, it seems like all the other platforms do the same thing as I did

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then they need to move Kconfig adds new symbols, if you are changing the default of an existing symbol then it goes in Kconfig.defconfig

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shontal1005, do you want to carry this change or you prefer I open a PR?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the change I made is what you meant, I can open another PR.

@github-actions github-actions bot added area: UART Universal Asynchronous Receiver-Transmitter area: ADC Analog-to-Digital Converter (ADC) labels May 11, 2025
@github-actions github-actions bot requested review from anangl and dcpleung May 11, 2025 20:05
@rettichschnidi rettichschnidi removed their request for review May 12, 2025 07:40
@shontal1005 shontal1005 force-pushed the main branch 3 times, most recently from 7248fcf to 6c91b24 Compare July 6, 2025 07:08
@shontal1005 shontal1005 changed the title boards: silabs: Add support for SiLabs EFR32ZG28 SoC boards: silabs: Add support for Silabs EFR32ZG28 SoC Jul 6, 2025
@github-actions github-actions bot added the area: DMA Direct Memory Access label Jul 8, 2025
@github-actions github-actions bot requested a review from teburd July 8, 2025 12:09
Copy link
Contributor

@Martinhoff-maker Martinhoff-maker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the late review, only few comments but otherwise LGTM. Don't forget to resolve the compliance problem.

@shontal1005 shontal1005 force-pushed the main branch 6 times, most recently from 7ec7292 to 98db4fd Compare July 13, 2025 11:52
Add support for Silicon Labs EFR32ZG28 SoC.

Signed-off-by: Shontal Biton <shontal1005@gmail.com>
@shontal1005 shontal1005 force-pushed the main branch 2 times, most recently from 83c55f7 to b603287 Compare July 15, 2025 07:27
Add support for Silicon Labs BRD4401C (a.k.a xG28-RB4401C) Radio Board.

Signed-off-by: Shontal Biton <shontal1005@gmail.com>
@Martinhoff-maker
Copy link
Contributor

FYI: I've created a PR to resolve the CI failure.

Added support for xg28 in eeprom test.

Signed-off-by: Shontal Biton <shontal1005@gmail.com>
Copy link

&dcdc {
regulator-boot-on;
regulator-initial-mode = <SILABS_DCDC_MODE_BUCK>;
silabs,pfmx-peak-current-milliamp = <80>;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In SiSDK, the default peak current is set to 100 mA on xG28: https://github.com/SiliconLabs/simplicity_sdk/blob/v2025.6.0/platform/service/device_init/config/s2/sdid235/20dbm/sl_device_init_dcdc_config.h#L54
Is there a reason it's different here?

};

&hfxo {
ctune = <106>;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

};

&lfxo {
ctune = <38>;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CONFIG_UART_CONSOLE=y
CONFIG_SERIAL=y
CONFIG_GPIO=y
CONFIG_SOC_GECKO_EMU_DCDC=y
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two DCDC options aren't used on Series 2, and should be removed.

status = "disabled";
};

gpiod: gpio@5003c0C0 {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: inconsistent capitalization of the unit address


gpiod: gpio@5003c0C0 {
compatible = "silabs,gecko-gpio-port";
reg = <0x5003c0C0 0x30>;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: inconsistent capitalization of the register address

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: ADC Analog-to-Digital Converter (ADC) area: Clock Control area: DMA Direct Memory Access area: EEPROM area: Pinctrl area: UART Universal Asynchronous Receiver-Transmitter DNM (manifest) This PR should not be merged (controlled by action-manifest) manifest manifest-hal_silabs platform: Silabs Silicon Labs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants